package course.d1217.集合;

import java.util.ArrayList;
import java.util.Collection;

/*
泛型是java se 5.0引入的特性，泛型的本质是参数化类型
泛型集合：
概念：参数化类型，类型安全的集合，强制集合中的元素类型保持一致
泛型可以定义在类名，方法， 接口

泛型定义在类名：
格式：   修饰符 class 类名<A>{
             }
   A：就是泛型，可以在整个类中作为一个引用数据类型使用

泛型定义在方法上：
格式：  修饰符<T> 返回值类型  方法名（参数列表）{}
T：方法上的泛型类型，只能在该方法中使用
一般情况下，调用该方法就会给方法上的泛型指定类型
 */
public class 泛型 {
    public static void main(String[] args) {
        A.print("1561");
      Collection<String> col =  new ArrayList<>();
      col.add("sdad");
      col.add("dsd");
      col.add("dsadd");
      A.aVoid(col);
    }
}
class A<E>{
 public  static <T> void  aVoid(Collection<T> collection){
     for (T t :collection ) {
         System.out.println(t);
     }
 }
 public static <R> void print(R r){
     System.out.println(r);
     //输出的是当前对象所属类的全称
     System.out.println(r.getClass().getName());
 }
}
